package com.nidu.demo.i18n.config;

import com.nidu.demo.i18n.service.I18nLocaleResolver;
import com.nidu.demo.i18n.util.I18nUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * 国际化自动配置类
 * 专门负责国际化相关的Bean配置
 * 
 * @author nidu
 */
@Slf4j
@Configuration
public class I18nAutoConfiguration {

    @Value("${spring.messages.basename}")
    private String basename;

    /**
     * 注册自定义的 LocaleResolver
     * 注意：Bean名称必须是"localeResolver"，Spring MVC会自动识别
     */
    @Bean("localeResolver")
    public I18nLocaleResolver localeResolver() {
        return new I18nLocaleResolver();
    }

    /**
     * 注册国际化工具类
     * 采用与WebUtils相同的设计模式
     */
    @Bean
    public I18nUtil i18nUtil() {
        return new I18nUtil(localeResolver(), basename);
    }
}
